package academic.emailClient;

import java.util.UUID;

import academic.emailClient.model.entities.Meeting;
import academic.emailClient.model.entities.Message;

public interface EmailClient {

	/**
	 * Initializes client execution
	 */
	void start();
	/**
	 * Sends a message to the server
	 * @param message
	 */
	void sendMessage(Message message);
	/**
	 * Sends a Meeting to the server
	 * @param message
	 */
	void sendMeeting(Meeting meeting);
	
	/**
	 * Declines a meeting
	 * @param meeting
	 */
	void declineMeeting(UUID meetingID);
	
	/**
	 * Send a meeting cancellation request
	 * @param meetingID Identification of the meeting that is going to be cancelled
	 */
	void sendMeetingCancellation(UUID meetingID);
	
	/**
	 * Ask to the server to update a meeting
	 * @param meeting Meeting that is going to be updated
	 */
	void requestUpdateMeeting(Meeting meeting);
}
